﻿#pragma once
#ifndef Fragment_hpp
#define Fragment_hpp

#include<vector>
#include"../../TesMath/TesVector3.h"

namespace MMF { namespace BSpline {

    ///<此线段为贝塞尔三阶 
    struct Fragment
    {
        //本段开始时的长度
        float mStartPos = 0.0f;

        //本段数据的长度
        float mLength = 0.0;

        //数据点
        std::vector<TesVector3> mPoints;

        //子线段长度
        std::vector<float> mLinesLen;

        //构造函数
        Fragment();
        Fragment(float startPos, const std::vector<TesVector3>& pts);

        //获取点
        TesVector3 GetPoint(float distance);

        //判断是否在线段中
        bool isIn(float distance);

    private:

        //计算总长度
        float CalcLength();
    };
}}


#endif